928B - Chat - CodeForces Solution


*special problem dp *1400

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;

int main(){
    int n,k;
    cin >> n >> k;

    int inds[n + 1];
    for (int i = 1; i <= n; i++){
        cin >> inds[i];
    }

    int reads[n + 1];
    memset(reads, 0, sizeof(reads));
    for (int i = 1; i <= n; i++){
        int prev = inds[i];
        int l = max(1, prev - k);
        int curl = max(1, i - k);
        int r = min(n, prev + k);
        int curr = min(n, i + k);

        if (prev == 0){
            reads[i] = (curr - curl + 1);
            continue;
        }

        if (curl > r){
            reads[i] = (curr - curl + 1) + reads[prev];
        }
        else{
            int diff = curr - r;
            reads[i] = diff + reads[prev];
        }
    }

    for (int i = 1; i <= n; i++){
        cout << reads[i] << " ";
    }
}


Comments

Submit
0 Comments
More Questions

39F - Pacifist frogs
1451C - String Equality
386A - Second-Price Auction
1690E - Price Maximization
282B - Painting Eggs
440A - Forgotten Episode
233B - Non-square Equation
628B - New Skateboard
262B - Roma and Changing Signs
755C - PolandBall and Forest
456B - Fedya and Maths
376B - IOU
1623B - Game on Ranges
1118A - Water Buying
1462C - Unique Number
301A - Yaroslav and Sequence
38A - Army
38C - Blinds
1197A - DIY Wooden Ladder
1717D - Madoka and The Corruption Scheme
1296D - Fight with Monsters
729D - Sea Battle
788A - Functions again
1245B - Restricted RPS
1490D - Permutation Transformation
1087B - Div Times Mod
1213B - Bad Prices
1726B - Mainak and Interesting Sequence
1726D - Edge Split
1726C - Jatayu's Balanced Bracket Sequence